﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Aurora.WebApp.Models;
using Aurora.WebApp.Controllers;
using PagedList;
using Aurora.WebApp.Helpers;

namespace Aurora.WebApp.ViewModel.Branch
{
    public class ListSucursalesViewModel
    {
        public string SUC_CONTACTO { get; set; }
        public string SUC_DIRECCION { get; set; }

        public int? NumeroPagina { get; set; }
        public IPagedList<Sucursal> LstSucursales { get; set; }

        public ListSucursalesViewModel() { }

        public void CargarDatos(CargarDatosContext datacontext, int? np, string _SUC_CONTACTO, string _SUC_DIRECCION)
        {
            NumeroPagina = np ?? 1;
            List<Sucursal> Lista = new List<Sucursal>();
            if (!string.IsNullOrEmpty(_SUC_CONTACTO) && !string.IsNullOrEmpty(_SUC_DIRECCION))
            {
                Lista = datacontext.context.Sucursal.Where(x => x.SUC_CONTACTO.ToLower().Contains(_SUC_CONTACTO.ToLower()) && x.SUC_DIRECCION.ToLower().Contains(_SUC_DIRECCION.ToLower()) && x.SUC_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            else if (string.IsNullOrEmpty(_SUC_CONTACTO) && !string.IsNullOrEmpty(_SUC_DIRECCION))
            {
                Lista = datacontext.context.Sucursal.Where(x => x.SUC_DIRECCION.ToLower().Contains(_SUC_DIRECCION.ToLower()) && x.SUC_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            else if (!string.IsNullOrEmpty(_SUC_CONTACTO) && string.IsNullOrEmpty(_SUC_DIRECCION))
            {
                Lista = datacontext.context.Sucursal.Where(x => x.SUC_CONTACTO.ToLower().Contains(_SUC_CONTACTO.ToLower()) && x.SUC_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            else
            {
                Lista = datacontext.context.Sucursal.Where(x => x.SUC_ESTADO == ConstantHelpers.EST_ACTIVO).ToList();
            }
            IQueryable<Sucursal> query = Lista.AsQueryable();
            query = query.OrderBy(x => x.SUC_CONTACTO);
            LstSucursales = query.ToPagedList(NumeroPagina.Value, ConstantHelpers.DEFAULT_PAGE_SIZE);
        }
    }
}